from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget,QApplication, QMessageBox
from PyQt5.QtGui import QPixmap
import sys  # 导入 sys 库
import time  # 导入 time 库

from package.Utils.ui.QT_Task1Window import Ui_Form  # 导入Ui_Form类(QT设计师创建)
from package.Utils.Screen import screen   # 导入 screen 对象(python代码)
from package.Utils.log import logger,mylog  # 导入 logger 对象(python代码)
from package.Utils.task import MyTask1  # 导入 MyTask1 类(python代码)

class MyTask1Window(QWidget, Ui_Form): # 继承 QWidget类和 Ui_Form界面类
    def __init__(self, parent=None):
        super(MyTask1Window, self).__init__(parent)
        self.setupUi(self)  # 初始化界面

        self.interval = 0  # 间隔时间
        self.count = 0  # 循环次数
        self.text = ""  # 发送内容
        self.timeout = 0  # 发送延时时间

    def click_pushButton_Clear(self):
        self.lineEdit_Interval.clear()  # 清空文本框内容
        self.lineEdit_Count.clear()  # 清空文本框内容
        self.lineEdit_text.clear()  # 清空文本框内容
        if mylog.log_enabled is True:
            logger.info("已清除所有文本框")  # 记录日志

    def click_pushButton_Send(self):
        global mytask1
        self.Waring_information_msg = QMessageBox()  # 初始化 QMessageBox 对象
        try:
            self.interval = float(self.lineEdit_Interval.text())  # 获取文本框内容并转换为int类型
            self.count = int(self.lineEdit_Count.text())  # 获取文本框内容并转换为int类型
            if self.interval < 0 or self.count < 0:  # 判断间隔时间和循环次数是否小于0
                if mylog.log_enabled is True:
                    logger.error("间隔时间和循环次数不能小于0！")  # 记录日志
                self.Waring_information_msg.critical(self, '错误', "间隔时间和循环次数不能小于0！", QMessageBox.Yes)  # 弹出错误提示框
                return
            elif self.interval == 0 or self.count == 0:  # 判断间隔时间和循环次数是否为0
                if mylog.log_enabled is True:
                    logger.error("间隔时间和循环次数不能为0！")  # 记录日志
                self.Waring_information_msg.critical(self, '错误', "间隔时间和循环次数不能为0！", QMessageBox.Yes)  # 弹出错误提示框
                return

            self.text = str(self.lineEdit_text.text())  # 获取文本框内容
            if self.text == "":  # 判断文本框内容是否为空
                if mylog.log_enabled is True:
                    logger.error("发送内容不能为空！")  # 记录日志
                self.Waring_information_msg.critical(self, '错误', "发送内容不能为空！", QMessageBox.Yes)  # 弹出错误提示框
                return

            # self.Waring_information_msg.setWindowTitle('WARING')
            # self.Waring_information_msg.setText("注意：10s后开始发送，请在10s内将鼠标移动到需要发送的窗口中并选中！,点击确定开始计时！")
            # self.Waring_information_msg.setStandardButtons(QMessageBox.Yes)
            # self.Waring_information_msg.show()
            self.Waring_information_msg.information(self, 'WRING', "注意：10s后开始发送，请在10s内将鼠标移动到需要发送的窗口中并选中！,点击确定开始计时！", QMessageBox.Yes)

            if mylog.log_enabled is True:
                logger.info(f"interval:{self.interval},count:{self.count},text:{self.text}")  # 记录日志
                logger.info(f"注意：10s后开始发送，请在10s内将鼠标移动到需要发送的窗口中并选中！")  # 记录日志

            self.timeout = 10  # 设置发送延时时间为10s

            mytask1 = MyTask1()  # 实例化 MyTask1 类
            mytask1.run()  # 调用 MyTask1 类的 run 方法

            if mylog.log_enabled is True:
                logger.info(f"运行完成！")  # 记录日志
            self.Waring_information_msg.information(self, '提示', "运行完成！", QMessageBox.Yes)
        except Exception as e:
            if mylog.log_enabled is True:
                logger.error(f"错误信息:{e}")  # 记录日志
            self.Waring_information_msg.critical(self, '错误', f"错误信息:{e}", QMessageBox.Yes)
